package plugin

import (
	"fmt"
)

// PluginMode 表示插件的实现模式
type PluginMode string

const (
	// PluginModeRPC 表示基于hashicorp/go-plugin的RPC模式
	PluginModeRPC PluginMode = "rpc"
	// PluginModeWasm 表示基于wazero的WebAssembly模式
	PluginModeWasm PluginMode = "wasm"
)

// 标准错误定义
var (
	// ErrPluginNotFound 表示插件未找到
	ErrPluginNotFound = fmt.Errorf("plugin not found")

	// ErrPluginAlreadyRegistered 表示插件已注册
	ErrPluginAlreadyRegistered = fmt.Errorf("plugin already registered")

	// ErrPluginNotEnabled 表示插件未启用
	ErrPluginNotEnabled = fmt.Errorf("plugin not enabled")

	// ErrIncompatibleAPIVersion 表示插件API版本不兼容
	ErrIncompatibleAPIVersion = fmt.Errorf("incompatible plugin API version")

	// ErrUnsupportedPluginMode 表示不支持的插件模式
	ErrUnsupportedPluginMode = fmt.Errorf("unsupported plugin mode")
)
